The disclosures herein relate generally to build-to-order computer systems and more particularly to a system and method for selectively executing programs in response to a reboot in a build-to-order computer system.
In the process of manufacturing a build-to-order computer system, software layering is often needed. Software layering refers to the process in which one or more programs or applications are installed onto a computer system as individual components on an as-needed basis. Unfortunately, many of these layered programs schedule other programs to run on subsequent reboots of the computer system. These other programs are usually components of the main program that either help the main program function or provide an additional service to the end-user. During the manufacturing process, these other programs are not needed and often cause failures in the software installation process.
The failures caused by these other programs often occur when the programs cause splash screens or dialog boxes that require user intervention to appear. The splash screens or dialog boxes may prevent the initiation of other programs until a user response is received. The programs that cause splash screens or dialog boxes to appear may utilize reboot counters or other timing mechanisms which cause the splash screens or the dialog boxes to appear at unpredictable times during the manufacturing process. Accordingly, these programs can cause unpredictable behavior to occur during the manufacturing process and can increase the time needed to manufacture a computer system. They can also affect the behavior of the software on the final product as delivered to the customer.
It would be desirable to be able to prevent programs that cause splash screens, dialog boxes, or other undesired results from being initiated during the process of manufacturing a computer system. Therefore, what is needed is a system and method for selectively executing programs in response to a reboot in a computer system.
One embodiment, accordingly, provides a system and method that include detecting a reboot request and, in response to detecting the reboot request, removing a first entry associated with a first program from an execute list. The system and method also include rebooting the computer system, and, in response to rebooting the computer system, initiating a second program associated with a second program entry on the execute list.
A principal advantage of this embodiment is that it prevents splash screens, dialog boxes, or other undesired behavior generated by programs installed on a computer system from interrupting the manufacturing process. By identifying a set of programs that need to be initiated and executed during the manufacturing process, the computer system is configured to initiate only these required programs in response to a reboot of the computer system during the manufacturing process. After the manufacturing process is completed, the computer system is configured to initiate other programs in addition to the required programs. The other programs may include programs that generate splash screens or dialog boxes.